package healthwatcher.data.factories;

import lib.persistence.IPersistenceMechanism;
import healthwatcher.data.IComplaintRepository;
import healthwatcher.data.IDiseaseRepository;
import healthwatcher.data.IEmployeeRepository;
import healthwatcher.data.IHealthUnitRepository;
import healthwatcher.data.ISpecialityRepository;
import healthwatcher.data.ISymptomRepository;
import healthwatcher.data.gae.ComplaintRepositoryGAE;
import healthwatcher.data.gae.DiseaseTypeRepositoryGAE;
import healthwatcher.data.gae.EmployeeRepositoryGAE;
import healthwatcher.data.gae.HealthUnitRepositoryGAE;
import healthwatcher.data.gae.SpecialityRepositoryGAE;
import healthwatcher.data.gae.SymptomRepositoryGAE;

public class GAERepositoryFactory extends AbstractRepositoryFactory {

	protected IPersistenceMechanism pm = null;
	
	public GAERepositoryFactory(IPersistenceMechanism pm) {
		this.pm = pm;
	}
	
	@Override
	public IComplaintRepository createComplaintRepository() {
		return new ComplaintRepositoryGAE(pm);
	}

	@Override
	public IHealthUnitRepository createHealthUnitRepository() {
		return new HealthUnitRepositoryGAE(pm);
	}

	@Override
	public ISpecialityRepository createMedicalSpecialityRepository() {
		return new SpecialityRepositoryGAE(pm);
	}

	@Override
	public IDiseaseRepository createDiseaseRepository() {
		return new DiseaseTypeRepositoryGAE(pm);
	}

	@Override
	public IEmployeeRepository createEmployeeRepository() {
		return new EmployeeRepositoryGAE(pm);
	}

	@Override
	public ISymptomRepository createSymptomRepository() {
		return new SymptomRepositoryGAE(pm);
	}

}
